const request = require('base')
var domain = 'https://qiniu.capfer.cn'
module.exports = {
	
	_before: function () {
		request.handleBefore(this)
	},
	
	_after(error, result) {
		return request.handleAfter(this, error, result)
	},
	
	// 获取文件上传到七牛云的参数
	getUploadFileOptions(data = {}) {
		return new Promise((resolve, reject) => {
			let {
				cloudPath, // 前端传过来的文件路径
			} = data
			// 可以在此先判断下此路径是否允许上传等逻辑
			// ...
			// 然后获取 extStorageManager 对象实例
			const extStorageManager = uniCloud.getExtStorageManager({
				provider: "qiniu", // 扩展存储供应商
				domain, // 带http协议头的域名地址
			})
			// 最后调用 extStorageManager.getUploadFileOptions
			const uploadFileOptionsRes = extStorageManager.getUploadFileOptions({
				cloudPath: cloudPath,
				allowUpdate: false, // 是否允许覆盖更新，如果返回前端，建议设置false，代表仅新增，不可覆盖
			})
			resolve(request.getResult({data: uploadFileOptionsRes, message: '七牛云文件参数获取成功'}))
		})
	},
	
	// 设置文件为私有权限
	setFilePrivate(data = {}) {
		let {
			fileID
		} = data
		// 可以在此先判断下此路径是否允许设置为私有权限
		// ...
		
		// 然后获取 extStorageManager 对象实例
		const extStorageManager = uniCloud.getExtStorageManager({
			provider: "qiniu", // 扩展存储供应商
			domain: domain, // 带http协议头的域名地址
		})
		extStorageManager.updateFileStatus({
			fileID, // 私有文件id
			isPrivate: true, // true 私有 false 公共
		})
		return request.getResult({message: '文件私有设置成功'})
	},
	
	// 获取临时下载链接
	getTempFileURL(data = {}) {
		return new Promise((resolve, reject) => {
			let {
				fileList
			} = data
			// 可以在此先判断下是否有权限访问这些私有文件
			// ...
			
			// 然后获取 extStorageManager 对象实例
			const extStorageManager = uniCloud.getExtStorageManager({
				provider: "qiniu", // 扩展存储供应商
				domain: domain, // 带http协议头的域名地址
			})
			let res = extStorageManager.getTempFileURL({
				fileList
			})
			console.log('getTempFileURL: ', res)
			resolve(request.getResult({data: res, message: '七牛云临时下载链接获取成功'}))
		})
	},
}